package com.cloud.base.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cloud.api.constants.StrVo;
import com.cloud.base.domain.dto.SysDeptDto;
import com.cloud.base.domain.sys.RoleDept;
import com.cloud.base.domain.sys.RoleDeptRequest;
import com.cloud.base.mapper.RoleDeptMapper;
import com.cloud.base.service.IRoleDeptService;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author haohaibo
 * @since 2024-10-14
 */
@Service("roleDeptService")
public class RoleDeptServiceImpl extends ServiceImpl<RoleDeptMapper, RoleDept> implements IRoleDeptService {

    @Resource
    private RoleDeptMapper roleDeptMapper;

    @Override
    public void InsertOrUpdate(RoleDeptRequest para) {
        remove(new QueryWrapper<RoleDept>().lambda().eq(RoleDept::getRoleId, para.getRoleId()));
        List<RoleDept> roleDepts = new ArrayList<>();
        for (String deptId : para.getDeptIds()) {
            RoleDept roleDept = new RoleDept();
            roleDept.setRoleId(para.getRoleId());
            roleDept.setDeptId(deptId);
            roleDepts.add(roleDept);
        }
        saveBatch(roleDepts);
    }

    @Override
    public List<SysDeptDto> selectRoleDept(StrVo para) {
        return roleDeptMapper.selectDeptList(para.getId());
    }
}